package com.flex.constants;

import com.flex.core.ConfigurableContants;

/**
 * 系统级的配置文件，从system.properties文件中读取
 * 
 * @author radio
 * 
 */
public class SystemConstants extends ConfigurableContants {

	static {
		init("/system.properties");
	}

	public final static String MESSAGE_BUNDLE_KEY = getProperty(
			"systemConstants.message_bundle_key", "i18n/messages");

	/**
	 * 上传文件的服务器真实路径
	 */
	public static String UPLOAD_SERVER_PATH = getProperty("upload_server_path",
			"/home/www/upload/");

	/**
	 * 上传文件的网络访问路径
	 */
	public static String UPLOAD_WEB_URL = getProperty("upload_web_url",
			"http://upload.ss.com/");

	/**
	 * 用户ID存储在session中的key
	 */
	public static String USER_SESSION_KEY = "USERID";

	/**
	 * 最后访问的页面在session中的key
	 */
	public static String LAST_URL_KEY = "LASTURL";

	/**
	 * 开启session集群的配置，默认为false
	 */
	public static final boolean SESSION_CLUSTERID = Boolean
			.parseBoolean(getProperty("session_clusterid", "false"));

	/**
	 * 使用session集群时，cookie中保存session的key
	 */
	public static final String COOKIE_SESSION_KEY = "session_key";

	/**
	 * cookie的domain，默认为根路径
	 */
	public static final String COOKIE_DOMAIN = "/";

	/**
	 * cookie的时间，默认为600秒
	 */
	public static final int COOKIE_MAX_AGE = 600;

	/**
	 * json发起ajax请求中的参数名
	 */
	public static final String JSON_PARAM_NAME = "params";

	/**
	 * json包中的安全认证字符串
	 */
	public static final String JSON_AUTH_KEY = "authKey";

	/**
	 * 系统默认的分页大小
	 */
	public static final int DEFAULT_PAGE_SIZE = 10;

	/**
	 * 默认的战斗循环的时间
	 */
	public static final int DEFAULT_FIGHT_WHILE_TIME = 360;

	/**
	 * 在线队列在缓存中的键
	 */
	public static final String CACHE_KEY_ONLINE = "queue_online";

	/**
	 * 消息队列在缓存中的前缀键 key_ID
	 */
	public static final String CACHE_KEY_MESSAGE = "queue_message_";

	/**
	 * 新邮件在缓存中的键
	 */
	public static final String CACHE_KEY_MAIL = "queue_mail";

	/**
	 * 用户读取的最后一封邮件在缓存中的键
	 */
	public static final String CACHE_KEY_LAST_MAIL = "queue_last_mail";

	// 存放系统公告的键 ,值是时间Long
	public static final String CACHE_SYSTEM_NOTICE = "systemNotice";

	// 存放非系统公告的键,值是map<String(playerId),Long(messageId)>
	public static final String CACHE_NOT_SYSTEM_NOTICE = "NotSystemNotice";

	// 存放最后一次查看消息的键,值是map<String(playerId),Long>
	public static final String CACHE_LAST_VISIT = "lastVisit";
	
	//表示玩家有新信息
	public static final String CACHE_HASMESSAGE = "gee";
}
